home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 2
/
Atari Mega Archive CD - Volume 2.iso
/
8bit
/
cislib_a
/
dlist2.act
< prev
next >
Wrap
Text File
|
1995-04-22
|
5KB
|
1 lines
¢MODULE ;DLIST2.ACT¢¢;************************************¢;*This program is in the public *¢;*domain and may not be sold by *¢;*anyone for any reason. It was *¢;*written by: *¢;* William T. Colburn *¢;* in February, 1987. *¢;* CI$: 72337,322 GEnie:W.T.COLBURN*¢;*Please enjoy this demonstration *¢;*program and share it with others! *¢;*Please keep this header with the *¢;*program listing when you do so. *¢;************************************¢;* á¬áמנקחבדá¬á *¢;*This program makes use of the *¢;*routine ALLOCATE.ACT from the OSS *¢;*Action! Tool Kit. ALLOCATE.ACT is*¢;*copywrited by OSS and is NOT in *¢;*the public domain. Therefore, *¢;*ALLOCATE.ACT was not included with*¢;*DLIST2.ACT by the Author, and *¢;*must NOT be added to it for public*¢;*distribution by any other user of *¢;*this demonstration program. *¢;*The author of this routine refuses*¢;*to accept responsibility for this *¢;*type of unethical action by any *¢;*users of my demonstration program.*¢;************************************¢¢CARD EndProg ;required for ALLOCATE.ACT¢¢; You áϕ⌡≤⌠á do a 'SET EndProg=*'¢; from the monitor áβµ⌠σ≥á compiling,¢; but áΓσµ∩≥σá running this program!¢¢INCLUDE "D8:ALLOCATE.ACT"; from the Action! Tool Kit¢¢MODULE ; My gloabl variables here.¢¢BYTE ARRAY dlist= ; display list!¢ [¢ $22 ; length (34 bytes)¢ $70 $70 $70 ;24 overscan lines¢ $42 $00 $00 ;load address of static here.¢ $06 $06 ;two lines of Gr.1¢ $42 $00 $00 ;load savmsc+200 here.¢ $02 $02 $02 ;22 lines Gr. 0¢ $02 $02 $02¢ $02 $02 $02¢ $02 $02 $02¢ $02 $02 $02¢ $02 $02 $02¢ $02 $02¢ $41 $00 $00 ;load address of dlist+1 here.¢ ] ¢BYTE ARRAY static ; static 80 byte display, allocated with Alloc() from Action! tool kit.¢¢PROC dsply_list()¢ CARD savmsc=$58, ;contains low address of screen display¢ dlist_vector=$230, ; points to the display list¢ old_savmsc=[0], ; save the savmsc here.¢ temp_card=[0] ; temporary variable!¢ BYTE dma=559, ; antic chip on/off address¢ crsinh=752, ;cursor on/off address¢ loop ; loop counter¢ BYTE POINTER dlist_ptr,; pointer to display list array.¢ save_dlist_ptr,¢ static_ptr ; pointer to static¢ dlist_ptr=dlist¢ save_dlist_ptr=dlist¢ save_dlist_ptr==+1¢ static=Alloc(81); allocate 81 bytes for 'static'.¢ FOR loop=1 TO 80¢ DO¢ static(loop)=0 ¢ OD¢ static(0)=80 ; set length of string¢ static_ptr=static ; set pointer¢ static_ptr==+1 ; point to entry #1.¢ Graphics(0)¢ old_savmsc=savmsc ; save start of screen adress¢ dlist_ptr==+5¢ dlist_ptr^=static_ptr-((static_ptr RSH 8) LSH 8)¢ dlist_ptr==+1¢ dlist_ptr^=static_ptr RSH 8 ;divide by 256!¢ dlist_ptr==+4¢ temp_card=old_savmsc+120¢ dlist_ptr^=temp_card-((temp_card RSH 8) LSH 8)¢ dlist_ptr==+1¢ dlist_ptr^=temp_card RSH 8¢ dlist_ptr==+22¢ dlist_ptr^=save_dlist_ptr-((save_dlist_ptr RSH 8) LSH 8)¢ dlist_ptr==+1¢ dlist_ptr^=save_dlist_ptr RSH 8 ;divide by 256!¢ dma=0 ; turn off the antic chip¢ dlist_vector=save_dlist_ptr; install the dlist vector¢ savmsc=old_savmsc; reset the screen starting address¢ dma=34 ; turn on the antic chip¢;**crsinh=1 ; kill cursor¢RETURN¢¢MODULE ; for user.¢¢PROC Main()¢ BYTE lmargn=$52,¢ dma=559, Answer=[0]¢ lmargn=3¢ PutE()¢ PutE()¢ PrintE("Did you do a: áצדקáד∈Σס≥∩τ©¬á")¢ PrintE("from the monitor after compiling")¢ PrintE("but before running this program?²²")¢ Print("Respond ך or מ...?")¢ Answer=GetD(7)¢ Put(Answer)¢ IF Answer='Y OR Answer='y THEN¢ Print("}")¢ ELSE¢ RETURN¢ FI¢ AllocInit(0); from ALLOCATE.ACT¢ dsply_list(); install display list¢ SetColor(2,10,3); pick your color¢ SAssign(static,"Çú∩∮Γ⌡≥∈Çÿìó⌐œüÇø∙≤⌠σϕ≤Ç",09,32)¢ SAssign(static,"≡≥∩µσ≤≤Θ∩∈β∮",45,56)¢ SAssign(static,"displayÇlistÇmanager",61,80)¢ Print("}") ; clear the screen¢ Position(3,4)¢ PrintE("See? This is the display list!")¢ Position(3,7)¢ PrintE("This screen has a static display")¢ PrintE("on the first three lines of the")¢ PrintE("screen. The rest scrolls.")¢ PrintE("The tricky part of all this is")¢ PrintE("that the characters in 'static'") ¢ PrintE("which you want to display must be")¢ PrintE("in the internal Atari code because")¢ PrintE("they won't be translated!")¢ PrintE("<Or some such pain in the neck.>")¢ PrintE("To see scrolling, type 'E' and then")¢ PrintE("press RETURN to go back to the")¢ PrintE("editor. The display list will")¢ PrintE("remain in place until you return")¢ PrintE("to the monitor or hit RESET.")¢ lmargn=0¢RETURN¢¢✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓